﻿
/**
 * nPnP - neither Perl not PHP
 *
 * Copyright (C) 2009 Christian Moeller
 *
 * This program is free software; you can redistribute it and/or modify it 
 * under the terms of the GNU General Public License as published by the 
 * Free Software Foundation; either version 3 of the License, or (at your option) 
 * any later version.
 * 
 * This program is distributed in the hope that it will be useful, but 
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
 * or FITNESS FOR A PARTICULAR PURPOSE. 
 * See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with this program; 
 * if not, see <http://www.gnu.org/licenses/>.
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FParser.Runtime
{
    public class TypeCache
    {
        private Dictionary<string, BaseType> tcache;
        public Dictionary<string, BaseType> Cache
        {
            get { return this.tcache; }
            set { this.tcache = value; }
        }

        public TypeCache()
        {
            this.tcache = new Dictionary<string, BaseType>();
        }

        public BaseType this[string key]
        {
            get
            {
                if (this.tcache.ContainsKey(key))
                    return this.tcache[key];
                else
                    return null;
            }

            set
            {
                if (!this.tcache.ContainsKey(key))
                    this.tcache.Add(key, value);
                else
                    this.tcache[key] = value;
            }
        }

        public bool delete(string key)
        {
            if (this.tcache.ContainsKey(key))
            {
                this.tcache.Remove(key);
                return true;
            }

            return false;
        }
    }
}
